package ${servicePackageName};

import java.util.List;

import com.baomidou.mybatisplus.extension.service.IService;
import ${entityPackageName}.${classInfo.classAliasName}Model;
import ${formPackageName}.*;
import com.fw.cost.model.form.BussResultForm;
import com.fw.cost.model.form.basic.*;
import com.fw.cost.model.metadata.ApiPageResult;
import com.fw.cost.model.vo.costCollection.AnalyzeImportResultVo;

/**
* <b><code></code></b>
* <p/>
*
* ${classInfo.classComment}
*
* <p/>
* <b>Creation Time:</b> ${.now?string('yyyy/MM/dd HH:mm:ss')}
*
* @author ${classInfo.authorName}
* @version ${classInfo.version}
*/
public interface I${classInfo.classAliasName}Service extends IService<${classInfo.classAliasName}Model> {
    /**
    * 获取${classInfo.classComment}列表
    *
    * @param queryForm
    * @return com.fw.cost.model.metadata.ApiPageResult
    * @Date ${.now?string('yyyy/MM/dd HH:mm:ss')}
    * @since ${classInfo.version}
    */
    ApiPageResult get${classInfo.classAliasName}List(${classInfo.classAliasName}QueryForm queryForm);

    /**
    * 新增、更新${classInfo.classComment}
    *
    * @param addForm
    * @return void
    * @Date ${.now?string('yyyy/MM/dd HH:mm:ss')}
    * @since ${classInfo.version}
    */
    void addOrUpdate${classInfo.classAliasName}(${classInfo.classAliasName}AddForm addForm);

    /**
    * 通过主键ID列表删除
    *
    * @param idList
    * @param period
    * @return void
    * @Date ${.now?string('yyyy/MM/dd HH:mm:ss')}
    * @since ${classInfo.version}
    */
    void delBy${classInfo.classAliasName}List(List<String> idList, String period);

    /**
    * 导入分析
    *
    * @param basicImportForm
    * @param importList
    * @return AnalyzeImportResultVo
    * @Date ${.now?string('yyyy/MM/dd HH:mm:ss')}
    * @since ${classInfo.version}
    */
    AnalyzeImportResultVo importAnalysis(BasicImportForm basicImportForm, List<${classInfo.classAliasName}ImportExcelForm> importList);

    /**
    *  导入${classInfo.classComment}
    *
    * @param basicImportForm
    * @param importList
    * @return void
    * @Date ${.now?string('yyyy/MM/dd HH:mm:ss')}
    * @since ${classInfo.version}
    */
    void import${classInfo.classAliasName}(BasicImportForm basicImportForm, List<${classInfo.classAliasName}ImportExcelForm> importList);

    /**
    * 根据会计期间获取${classInfo.classComment}信息
    *
    * @param queryForm
    * @return List<${classInfo.classAliasName}Model>
    * @Date ${.now?string('yyyy/MM/dd HH:mm:ss')}
    * @since ${classInfo.version}
    */
    List<${classInfo.classAliasName}Model> getListByPeriod(${classInfo.classAliasName}QueryForm queryForm);

    /**
    * 检查上一个周期的会计周期
    *
    * @param basicCopyPreviousPeriodForm
    * @return BussResultForm
    * @Date ${.now?string('yyyy/MM/dd HH:mm:ss')}
    * @since ${classInfo.version}
    */
    BussResultForm checkCopyLastFiscalYearData(BasicCopyPreviousPeriodForm basicCopyPreviousPeriodForm);

    /**
    *  复制上一个会计周期
    *
    * @param basicCopyPreviousPeriodForm
    * @return void
    * @Date ${.now?string('yyyy/MM/dd HH:mm:ss')}
    * @since ${classInfo.version}
    */
    void copyPreviousPeriod(BasicCopyPreviousPeriodForm basicCopyPreviousPeriodForm); 
}
